草庐IT

c++ - 随机双C++11

全部标签

c++ - 在 Windows 中使用事件进行调试

如果我在Windows中使用CreateEvent创建事件,我如何使用VisualStudio中的调试器检查该事件是否已发出信号?CreateEvent返回一个句柄,它不能让我访问很多信息。在调用WaitForSingleObject()之前,我想在进入函数之前检查事件是否已发出信号。 最佳答案 您可以使用ProcessExplorer工具(http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx)在调试器之外手动检查事件。如果事件被命名,它会有所帮助,这样您就可以更

c++ - VOID NTAPI 是什么意思,我在哪里可以找到它的引用资料?

我找到了这段代码,但我不明白。我找不到NTAPI的引用资料。对我来说,它定义了一个名为TestForWr的函数,但NTAPI令人困惑。VOIDNTAPITestForWr(PVOIDAd,ULONGLe,ULONGAl); 最佳答案 来自WinNT.h#defineNTAPI__stdcallThe__stdcallcallingconventionisusedtocallWin32APIfunctions.Thecalleecleansthestack,sothecompilermakesvarargfunctions__cdec

c++ - windows平台下c++休眠线程100.8564毫秒

我有什么方法可以让线程在windowOS下休眠到100.8564毫秒。我正在使用多媒体计时器,但它的分辨率至少为1秒。请指导我,以便我可以处理毫秒的小数部分。 最佳答案 是的,你可以做到。请参阅QueryPerformanceCounter()以读取准确的时间,并进行繁忙的循环。这将使您能够以高达10纳秒的分辨率进行等待,但是,如果线程调度程序决定在周期结束时从您那里窃取控制权,它会这样做,除了分配您的处理实时优先级。你也可以看看这个:http://msdn.microsoft.com/en-us/library/ms838340(

c - 在 Windows XP 中手动更新 shell32.dll 是否安全/实用?

我正在运行我的开发环境WindowsXP。我需要访问函数SHGetKnownFolderPath。我的团队建议我用他们的更新我的shell32.dll并更新我的头文件。函数记录在这里:http://msdn.microsoft.com/en-us/library/bb762188%28v=vs.85%29.aspx现在,了解这个问题的重点是通过复制粘贴手动覆盖/更新shell32.dll的可行性。请不要以上述功能的解决方法/替代方案作为回应。这不是这个问题的重点。简单地使用Windows7版本的shell32.dll并粘贴到我的(在XP中)是否安全?我不敢测试它,因为害怕毁了我的整个操

c++ - 写入共享内存的频率限制?

单线程应用程序(C++)连续锁定、写入和解锁共享内存-每秒四次(该循环以编程方式设置为每秒运行一次,循环中有4次写入,没有读)。EnterCriticalSection(cs);WriteToSharedMem();LeaveCriticalSection(cs);另一个应用程序(C)将每隔分钟访问一次此共享内存。以这种速度写入共享内存有什么问题吗?WindowsXPC++ 最佳答案 您给出的速率(每秒四次)不会造成问题,但是youcan'tusecriticalsectionsacrossprocesses.您需要一个内核级同步对

c++ - Linux 程序是否像 Windows 程序一样可移植?

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭7年前。Improvethisquestion也许这是一个愚蠢的问题,但这是从人们在这里和那里的谈话中学到的问题之一,如果专业人士正确描述了情况,我会很高兴。谈到标准台式计算机,我看到Windows程序尽可能地便携。我可以用静态库链接编译任何32位软件,然后将该软件放在闪存驱动器上,它可以在世界上任何32位或64位计算机上运行。我有超过10年的程序,它们仍然可以正常工作。现在我也在编写linux,但是我在编写linux程序时脑子里没有那个画面。我总是

c - 安全移除安装的驱动器

我有一个应用程序可以通过SATA接口(interface)将文件写入格式化为NTFS的外部驱动器。在关闭应用程序之前,我确保使用FlushFileBuffers为每个文件刷新所有内容(即CreateFile、FlushFileBuffers、CloseHandle)。然后我卸下驱动器,而不是先卸载它!将驱动器重新插入PC机时,这似乎工作正常。但是,将其插入OSX时,操作系统似乎找不到任何文件,除非驱动器已正确卸载。磁盘中可能缺少什么导致OSX找不到任何东西,有没有一种方法可以在不卸载驱动器的情况下刷新数据?编辑:使用exfat我遇到了“脏”驱动器在重新安装时不可写的问题。

c - 如何将对象的安全描述符重置为默认值?

作为测试实用程序的一部分,我正在创建一些注册表项并向它们应用特定的安全描述符。稍后我想将它重置为“默认”安全描述符(即从父级继承)。执行此操作的正确方法是什么?我无法保存和恢复原始安全描述符,因为此实用程序可能会在测试人员想要重置它之前运行多次。我想我可以将它保存到临时文件或注册表值中,但我更喜欢更优雅的解决方案。那么,我必须对父级的安全描述符做些什么吗?我很难弄清楚该怎么做。差点忘了说我是用C语言做的。更新:我应该补充一点,我还将对文件(以及可能的其他安全对象)执行此操作,因此如果有一种通用的方法来处理安全描述符就更好了他们自己而不是使用特定于对象的东西,如RegSaveKey。我想

windows - 将 X11 显示转发到 Windows 时出现颜色问题

我有一个应用程序可以逐行绘制数据到X11显示器,其中每条线实际上都由不同颜色的像素组成。我通过使用XCreateImage将数据数组映射到XImage*来实现这一点。然后在处理数据时,我用红色、绿色和蓝色值填充XColor变量,并调用XAllocColor来分配颜色。然后我将像素值分配给数据数组中的相应元素。设置好所有数据后,我使用XPutImage绘制线条。在Linux上运行显示时,一切看起来都很棒,完全符合预期。但是,当我通过ssh将X11显示转发到Windows时,颜色全乱了。有什么想法吗?编辑如果我不使用XCreateImage和XPutImage并使用我想要的前景色创建一个G

c - Windows 上多线程应用程序中非阻塞服务器/监听套接字的最佳方法?

我正在Windows上编写TCP服务器/客户端应用程序,以熟悉WinsockAPI。我有UNIX背景,想知道以下哪种方法是实现应用程序的最佳方法:首先是规范必须能够在多处理器和单处理器系统上很好地扩展。没有硬件连接限制。应用程序既可以监听连接,充当服务器,也可以充当客户端。多线程。第一种方法:在“服务器”线程中用于监听的非阻塞类选择套接字。我们为每个连接的客户端生成一个单独的线程。第二种方法:在“服务器”线程中阻塞用于监听的套接字。我们为每个连接的客户端生成一个单独的线程。第三种方法:在“服务器”线程中用于监听的非阻塞类选择套接字。每个传入连接都没有单独的线程,我想协议(protoco